1. Field of the Invention
Embodiments of the present invention relate to the field of graphical user interfaces. Embodiments are directed to the display of information, e.g., configuration information, for a programmable chip. More particularly, embodiments of the present invention relate to a data-driven display of microcontroller configuration values.
2. Related Art
Generally, a microcontroller is an integrated circuit device (“chip”) composed of functional blocks, input/output pins, internal busses and programmable interconnections among these and similar components. Each of these items can be treated as a sub-system that can be configured (or programmed) to perform a specific function by loading a particular bit pattern into a particular register in an actual chip.
Configuring a modern microcontroller can require specifying and setting an enormous number of bits. It is common for engineers who need to configure a microcontroller to develop and use software for that purpose. A design system is a computer program that has a data structure in memory that models the various sub-systems, the allowable configurations for each sub-system and a current configuration for each sub-system. The design system permits a user to manipulate the configurations symbolically and generate the executable code that would configure an actual microcontroller. In conjunction with an in-circuit emulator, the design system could control and debug an actual microcontroller.
A design system can be developed with a software development system and makes use of graphical user interface (GUI) components in the form of objects taken from a class library, such as Microsoft's Foundation Class Library used with its Visual C Development System. One useful object is a grid, which is an array of user-editable cells that can contain and display text. Dundas Software provides a library of objects, including a two-dimensional grid.
One limitation of existing design systems is that the dimensions of the display grid are defined by the software program that generates the grid. Therefore, separate executable routines are required for grid displays of different dimensions. Each display grid is therefore displayed using a “custom” display routine. In other words, the design system's GUI and data structures, such as the dimensions and contents of a grid, are intimately tied to the architecture and characteristics of a particular microcontroller at the time the design system is compiled and linked. If a grid dimension needs to change, e.g., to accommodate a different microcontroller design, etc., then the programming software needs to be redesigned for the new microcontroller. Redesigning software for new chip designs is a very expensive and time consuming process. Thus, if there are changes to a microcontroller or a new microcontroller is created, the design system also needs to be updated and redistributed.